Lôgic của "HOẶC" và "VÀ"
Hai trụ cột chính hỗ trợ toàn bộ lĩnh vực tổ hợp. Việc áp dụng chúng hoàn toàn phụ thuộc vào việc chúng ta xem xét một nhiệm vụ như một lựa chọn duy nhất từ nhiều danh mục khác nhau hay như một chuỗi các lựa chọn liên tiếp.
Nếu một tập hợp $X$ được chia thành các tập con rời nhau $X_1, X_2, \dots, X_n$, thì tổng số phần tử $|X|$ bằng tổng kích thước của các tập con đó:
$$|X| = |X_1| + |X_2| + \dots + |X_n|$$
Ví dụ minh họa: Chọn một bữa ăn tại Kay’s Quick Lunch bằng cách chọn một món sandwich từ thực đơn món chính HOẶC một món khai vị từ thực đơn khai vị. Bạn không thể chọn cả hai; bạn chỉ chọn đúng một món.
Nếu một hoạt động gồm $t$ bước liên tiếp, trong đó bước thứ $i$ có $n_i$ kết quả khả dĩ, thì tổng số cách hoàn thành nhiệm vụ bằng tích các khả năng ở mỗi bước:
$$N = n_1 \times n_2 \times \dots \times n_t$$
Ví dụ minh họa: Cấu hình một xe tải Big Pickup. Bạn phải chọn một loại động cơ (5 lựa chọn) VÀ một kiểu cabin (3 lựa chọn). Tổng số cấu hình có thể là $5 \times 3 = 15$.
Thực thi mã nguồn và độ phức tạp
Trong khoa học máy tính, các nguyên lý này thể hiện qua các cấu trúc vòng lặp. Các vòng lặp tuần tự biểu diễn Nguyên lý cộng, trong khi các vòng lặp lồng nhau biểu diễn Nguyên lý nhân.
for i = 1 đến m: println(i)
for j = 1 đến n: println(j)
// Nguyên lý nhân (thực thi m * n lần)
for i = 1 đến m:
for j = 1 đến n:
println(i, j)